package com.powerbank.device.service;

/**
 * 设备心跳监控服务接口
 */
public interface DeviceHeartbeatService {

    /**
     * 更新设备心跳时间
     *
     * @param deviceCode 设备编码
     */
    void updateHeartbeat(String deviceCode);

    /**
     * 检查设备离线状态
     *
     * @param deviceCode 设备编码
     * @return 是否离线
     */
    boolean isDeviceOffline(String deviceCode);

    /**
     * 获取设备最后心跳时间
     *
     * @param deviceCode 设备编码
     * @return 最后心跳时间戳
     */
    Long getLastHeartbeatTime(String deviceCode);

    /**
     * 启动心跳监控定时任务
     */
    void startHeartbeatMonitor();

    /**
     * 停止心跳监控定时任务
     */
    void stopHeartbeatMonitor();

    /**
     * 处理设备离线事件
     *
     * @param deviceCode 设备编码
     */
    void handleDeviceOffline(String deviceCode);
}